package dominioEdificio;

import interfaces.Notificable;
import interfaces.Notificador;

public class SensorMovimiento implements Notificador {
	
	Notificable observador;
	
	private boolean encendido;
	private boolean movimientoDetectado;
	public static String sensorMovimientoEncendido = "Sensor de movimiento encendido";
	public static String sensorMovimientoApagado = "Sensor de movimiento apagado";
	public static String hayMovimiento = "Movimiento detectado";
	public static String sinMovimiento = "Sin movimiento";
	
	public SensorMovimiento(){
		this.encendido = false;
		this.movimientoDetectado = false;
	}
	public void registrarObservador(Notificable obs) {
		this.observador = obs;
	}
	
	public void encender(){
		if (this.encendido == false){
			this.encendido = true;
			notificar(sensorMovimientoEncendido);
		}
	}
	
	public void apagar(){
		if (this.encendido == true){
			this.encendido = false;			
			notificar(sensorMovimientoApagado);
		}
	}
	
	public void hayMovimiento(){
		if (this.encendido){
			this.movimientoDetectado = true;
			notificar(hayMovimiento);
		}
	}
	
	public void sinMovimiento(){
		if (this.encendido){
			this.movimientoDetectado = false;
			notificar(sinMovimiento);
		}
	}

	public void notificar(String evento) {
		if (this.observador != null) this.observador.notificarMensaje(evento);
	}

}
